home *** CD-ROM | disk | FTP | other *** search
- C Set ++ Compiler Version 2.0
- Fixes List
- -----------------------------
- *************************************************************************
- * *
- * This CSD contains fixes that are common to C/C++ Tools Version 2.0 *
- * and Version 2.01. Notwithstanding the version statements *
- * contained in the files of this CSD, this is not an upgrade of *
- * Version 2.0 to Version 2.01. *
- * *
- * The code to which you have access is determined by the version of *
- * the software to which you are licensed. *
- * *
- *************************************************************************
- =========================================================================
- CTC0009 is informal Corrective Service
- **************************************************************************
- FIX/APAR COMPONENT PROBLEM_DESCRIPTION
- --------------------------------------------------------------------------
- PJ13703 CFE Defining the first token in a program as
- a character string with the /D option
- causes an internal compiler error
- --------------------------------------------------------------------------
- QUAL-IMP CFE Label not found message does not
- indicate which label is not found.
- --------------------------------------------------------------------------
- QUAL-IMP CFE Internal compiler error while generating
- /Wenu messages for program with 'case'
- statement outside 'switch' scope.
- --------------------------------------------------------------------------
- PJ13705 BE Fixed a parameter passing problem that
- occurs when the last statement of a
- function is to a _Pascal function.
- --------------------------------------------------------------------------
- QUAL-IMP BE Allow the optimizer to assign registers
- a little more efficiently in certain
- circumstances.
- --------------------------------------------------------------------------
- PJ13706 BE A loop that contains a goto to a return
- could, in rare cases, cause incorrect
- code generation.
- --------------------------------------------------------------------------
- PJ12329 CRT A 16-bit function will get a protection
- exception if the function has a large
- automatic storage area. This problem
- occurs on secondary threads, and happens
- because the stack is not committed when
- the thread begins execution and the
- 16-bit code does not have stack probes.
- The compiler runtime code that sets up
- the 16bit stack needs to commit it.
- --------------------------------------------------------------------------
- PJ13704 CRT Compiling 16-32 callback funtions with
- static link results in duplicate references
- when linking.
- Reference APAR PJ12507
- --------------------------------------------------------------------------
- QUAL-IMP CRT Now checking if a destructor exists
- during error recovery in __vec__copy().
- May have caused traps
- =========================================================================
- CTC0008 is informal Corrective Service
- The following fixes are provided in Compiler CS CTC0008
- *************************************************************************
- FIX/APAR COMPONENT PROBLEM DESCRIPTION
- -------------------------------------------------------------------------
- PJ12307 BE Cannot access local variables of callback
- functions within the Debugger.
- -------------------------------------------------------------------------
- PJ12325 BE Incorrect code may be generated for a
- conditional increment or decrement if the
- comparison is signed.
- -------------------------------------------------------------------------
- PJ12340 BE The conversion of an address to a segmented
- address may be incorrectly done if the
- address involves an index calculation
- (ie: &array{i-1})
- -------------------------------------------------------------------------
- PJ12341 BE A register used by strncat() could be
- clobbered under rare circumstances and
- cause incorrect behaviour.
- -------------------------------------------------------------------------
- PJ12376 BE Fixed an internal problem with the handling
- of conditional increments with side effects.
- -------------------------------------------------------------------------
- PJ12431 BE Incorrect register selection could cause
- incorrect results when performing a bitwise
- AND (&) with a constant.
- -------------------------------------------------------------------------
- PJ12507 BE & CRT Compiling 16 to 32 callback functions with
- /Gh+ causes a run-time trap.
- -------------------------------------------------------------------------
- QUAL-IMP BE Incorrect register selection could lead to
- traps or unexpected results with 32 to 16 to
- 16 to 32 code.
- -------------------------------------------------------------------------
- QUAL-IMP BE Fixed a problem similarto PJ11975 for
- conditional decrements.
- -------------------------------------------------------------------------
- PJ12567 CRT Exception handler was not deregistered within
- heap_check when using /TM+
- -------------------------------------------------------------------------
- PJ12326 CFE If listing is enabled (/Ls, /Li, or /Lj) and
- the source code contains nested #if, #elif
- and #ifdef, the compiler might fail with
- unexpected compiler error.
- -------------------------------------------------------------------------
- PJ12327 CFE & C++FE After compiling programs with preload turned
- on, sometimes the front-end traps after the
- compilation is completed.
- -------------------------------------------------------------------------
- PJ12477 CFE The compiler was not checking against
- possible errors reading the source and
- header files.
- -------------------------------------------------------------------------
- PJ12490 CFE ICC will be changed to ignore /Si+ option
- when /Fb+ option is specified.
- -------------------------------------------------------------------------
- QUAL-IMP CFE Pre-load program was not checking the return
- codes from some API calls.
- -------------------------------------------------------------------------
- QUAL-IMP CFE If the compiler is first invoked from a
- directory with preload option enabled, while
- the compiler stays loaded, the user is
- prevented from removing the directory.
- This is inconvenient for the user.
- -------------------------------------------------------------------------
- QUAL-IMP CFE Compiling program with function calls with
- very large number of arguments causes
- compiler to trap.
- -------------------------------------------------------------------------
- PJ12378 C++FE If a class is _Exported, then a member
- function is subsequently defined to be
- "inline", the compiler still tells the linker
- to export the function. This causes an
- "undefined external" linker error.
- -------------------------------------------------------------------------
- PJ12388 C++FE A C++ program compiled with optimization
- will cause the front-end to trap if a "const
- int" static class data member is referenced
- with explicit class qualification.
- -------------------------------------------------------------------------
- PJ12427 C++FE Erroneous conversion error between typedefs,
- friend functions and the use of the friend
- function.
- -------------------------------------------------------------------------
- PJ12445 C++FE Compiler trap processing declaration of const
- var symbol previously used without being
- declared.
- -------------------------------------------------------------------------
- PJ12479 C++FE Preprocessor trap when processing a macro
- defined to NULL
- -------------------------------------------------------------------------
- PJ12492 C++FE When one anonymous union is nested inside
- another in a C++ program, incorrect addresses
- are generated for the union members.
- -------------------------------------------------------------------------
- QUAL-IMP C++FE Fixed #pragma page() and #pragma skip() so
- that a listing file will not be generated if
- the listing option is not activated on the
- command line.
- -------------------------------------------------------------------------
- QUAL-IMP C++FE If the argument list of a macro is supplied
- via another macro, the macro might not be
- expanded as expected.
- Note: Corresponding CFE fix was implemented
- in CTC0006 as PJ11929
- -------------------------------------------------------------------------
- QUAL-IMP C++FE Wrapper <demangle.h> with #pragma pack
- -------------------------------------------------------------------------
- PJ12328 UTIL When a new C Set++ project (ie. no compiler
- options have been set), is invoked under the
- build action on the WorkFrame, the compiler
- DLL will return the default action. The
- default action is not to generate any .W
- files.
- -------------------------------------------------------------------------
- PJ12522 UTIL Munch was giving the error "assert
- <line_number> invalid object record." This
- error was incorrectly being produced for
- valid object record formats.
- =========================================================================
- CTC0007 is informal Corrective Service
- The following fixes are provided in Compiler CS CTC0007 and later CS
- *************************************************************************
- FIX/APAR COMPONENT PROBLEM DESCRIPTION
- -------------------------------------------------------------------------
- PJ11951 BE & CFE The optimizer misses a chance to inline
- certain C++ functions.
- -------------------------------------------------------------------------
- PJ11979 CFE In source code:
- int main (void) {
- int a, b; b = 1; a = 2; return 0;
- }
- The symbols for a and b are generated in a
- different order depending on whether /Ti is
- on. They should be generated in the same
- way no matter what the /Ti setting is.
- -------------------------------------------------------------------------
- QUAL-IMP CFE When /La compiler option is used, some of the
- structures and unions are incorrectly shown
- in the listing
- -------------------------------------------------------------------------
- PJ12108 CRT Library fixes made to solve problems when
- debug allocated objects were freed with
- non-debug routines and vice-versa.
- In addition the environment variable
- DDE4_HEAP_SKIP was added whereby the user can
- skip the _heap_check that occur when debug
- routines are invoked. The syntax is as
- follows:
-
- set DDE4_HEAP_SKIP=increment,starting
-
- where: 'increment' is how often a
- heap_check will be invoked, and 'starting'
- (which is optional) is how many calls to
- debug memory routines must occur before
- heap_checks are done.
-
- Example: DDE4_HEAP_SKIP=100,1000
- will perform a heap_check after 1000 debug
- memory routines have been called and on every
- 100 calls after that.
-
- Example: DDE4_HEAP_SKIP=50
- will perform a heap_check on every 50 calls
- made to a debug memory routine
-
- Note: If DDE4_HEAP_SKIP is not set in the
- environment then the default will be to
- invoke heap_check on every call to a debug
- memory routine.
- =========================================================================
- CTC0006 is informal Corrective Service
- The following fixes are provided in Compiler CS CTC0006 and later CS
- *************************************************************************
- FIX/APAR COMPONENT PROBLEM DESCRIPTION
- -------------------------------------------------------------------------
- PJ11896 BE Optimization Problem: A for loop that
- functions like a memcpy() could be
- incorrectly optimized if the source of the
- copy is a struct member.
- -------------------------------------------------------------------------
- PJ11952 BE Optimization Problem: An internal problem
- with expression simplification could result
- in incorrect code generation.
- -------------------------------------------------------------------------
- PJ11953 BE Optimization Problem: Within an inner switch
- of nested switches, a goto jumping to a break
- for the outer switch could be turned into a
- break for the inner switch.
- -------------------------------------------------------------------------
- PJ11975 BE Optimization Problem: Statements of the form:
- "if (f1 < f2) i++", where f1 and f1 have
- floating-point datatypes, could cause a
- compile-time exception in the BE.
- -------------------------------------------------------------------------
- QUAL-IMP BE Optimization Problem: MOD operations could
- generate results of the wrong sign if both
- operands are negative. Similar results could
- occur for MOD and DIV by a negative power of
- 2.
- -------------------------------------------------------------------------
- QUAL-IMP BE Fixed a small problem with the generated
- assembler listing file - an incorrect symbol
- could be used.
- -------------------------------------------------------------------------
- PJ11872 C++FE Fixed a trap in the C++ frontend. The trap
- occurred when we tried to compile a source
- file that contained a class that had 2
- declarations of the same friend function and
- a typedef for that function.
- -------------------------------------------------------------------------
- PJ11887 C++FE Fixed a trap when compiling code with a
- definition of a function with _Far16 _Pascal
- linkage.
- -------------------------------------------------------------------------
- PJ11981 C++FE If a conversion function yields a reference
- to a class with constructors, and a temporary
- is built from the result of that conversion,
- the temporary is initialized by bitwise
- copying instead of by calling its copy
- constructor.
- -------------------------------------------------------------------------
- PJ11982 C++FE The compiler will deliberately not inline
- some functions if doing so would break C++
- exception handling. However, when exception
- handling is disabled by /Gx+, the compiler
- still fails to inline those functions.
- -------------------------------------------------------------------------
- PJ11983 C++FE A complex expression containing more than one
- conditional subexpression (i.e. the x ? y :
- z construct) may be generated such that the
- subexpressions are evaluated in the wrong
- order.
- -------------------------------------------------------------------------
- PJ11984 C++FE An inline function consisting of a single
- return statement that returns a
- type-converted parameter may be incorrectly
- inlined.
- -------------------------------------------------------------------------
- PJ11881 CFE Sizeof typedef within sizeof sometimes
- returns arbitrary value.
- -------------------------------------------------------------------------
- PJ11929 CFE If the argument list of a macro is supplied
- via another macro, the macro might not be
- expanded as expected.
- -------------------------------------------------------------------------
- PJ11889 CRT If the function that executes when a thread
- begins execution calls 16-bit code, then
- EDCThunkProlog is called from within the
- function prolog. EDCThunkProlog tries to
- access data that is outside the stack frame,
- and since this is the first frame on the
- stack, that storage is not allocated to the
- stack. A protection exception occurs.
- =========================================================================
- CTC0005 is informal Corrective Service
- The following fixes are provided in Compiler CS CTC0005 and later CS
- *************************************************************************
- FIX/APAR COMPONENT PROBLEM DESCRIPTION
- ------------------------------------------------------------------------
- PJ11625 BE Optimization Problem: Compiling source that
- contains floating-point code could cause a
- compile-time trap in the backend.
- ------------------------------------------------------------------------
- PJ11688 BE Optimization Problem: Statements of the form
- "do { i++; } while (condition); i--;" could
- be incorrectly optimized.
- ------------------------------------------------------------------------
- PJ11692 BE Incorrect debug info could be generated for a
- data member of a class with type "char *
- const".
- ------------------------------------------------------------------------
- PJ11695 BE Optimization Problem: Instruction scheduling
- could clobber the result of constant multiply
- across a call.
- ------------------------------------------------------------------------
- PJ11696 BE Optimization Problem: Using an int variable
- as an array of chars within a loop could
- result in incorrect code generation.
- ------------------------------------------------------------------------
- PJ11697 BE Optimization Problem: Statements of the form
- "while (cond) { if (--i) { i++; break; } }"
- could be incorrectly optimized.
- ------------------------------------------------------------------------
- PJ11698 BE Optimization Problem: If the "count" paramter
- of strncat() is a builtin string function,
- incorrect code could be generated.
- ------------------------------------------------------------------------
- PJ11699 BE Optimization Problem: Tail calling a _Pascal
- function from another function could result
- in an exception at run-time.
- ------------------------------------------------------------------------
- PJ11701 BE strncat() could copy one byte even if "count"
- parameter is a variable of value 0.
- ------------------------------------------------------------------------
- QUAL-IMP BE Optimization Problem: Adding two negative
- numbers and then negating the result could be
- optimized incorrectly.
- ------------------------------------------------------------------------
- QUAL-IMP BE Without optimization, an expression of the
- form "*((char*)&array[index]+i)" could
- generate an incorrect OBJ even though the
- ASM is correct.
- ------------------------------------------------------------------------
- PJ11491 C++FE new() is not returning a valid pointer when
- allocating a 0-sized array.
- ------------------------------------------------------------------------
- PJ11492 C++FE The delete() operator for an object was not
- being called with the debug parameters when
- that object was being deleted because its
- constructor threw an exception.
- ------------------------------------------------------------------------
- PJ11574 C++FE Reduce the long link times and large swapper
- file created when linking C++ programs that
- contain templates.
- ------------------------------------------------------------------------
- PJ11575 C++FE If a virtual base class appears more than
- once in the class hierarchy, then one copy of
- if may be initialized several times and the
- other copies not initialized.
- ------------------------------------------------------------------------
- PJ11584 C++FE The compiler may crash when generating debug
- information for a class that has no
- user-supplied nor compiler-generated inline
- functions. This is rare, since there are
- usually some compiler-generated ones.
- ------------------------------------------------------------------------
- PJ11585 C++FE If a C++ compilation includes definitions of
- classes that contain virtual functions, all
- of which are inline functions, the compiler
- will generate those classes and functions
- whether or not they are actually used. This
- fix generates them only when necessary
- ------------------------------------------------------------------------
- QUAL-IMP C++FE A C++ program containing a brace-enclosed
- statement block outside of a function body
- crashes the front-end when compiled with
- /Wuse+ if there is an unused label define
- in the block
- ------------------------------------------------------------------------
- QUAL-IMP C++FE A goto within a catch block is incorrectly
- diagnosed as a jump into the catch block,
- which is illegal since it bypasses
- initialization of the catch variable
- ------------------------------------------------------------------------
- QUAL-IMP C++RT Fixed memory leak that occurred when memory
- is allocated for an object however, it is not
- constructed because it's constructor threw an
- exception.
- ------------------------------------------------------------------------
- PJ11702 CFE The compiler is not recognizing a constant
- expression properly when initialization
- involves an array within a structure within
- an array of structures
- ------------------------------------------------------------------------
- PJ11703 CFE Using CSD 1 of C Set ++, the test case is
- expected to have a warning message, but the
- compiler should not be trapping.
- ------------------------------------------------------------------------
- PJ11686 CRT The problem lies in reading across memory
- blocks. The code did not take into account
- of the number of characters read in from the
- previous blocks and hence reading more than
- necessary.
- ------------------------------------------------------------------------
- PJ11687 CRT AL register will now be set by the library
- when making a call to DosGetMessage.
- =========================================================================
- CTC0004 is informal Corrective Service
- The following fixes are provided in Compiler CS CTC0004 and later CS
- *************************************************************************
- FIX/APAR COMPONENT PROBLEM DESCRIPTION
- ------------------------------------------------------------------------
- PJ11127 BE Optimization Problem: Multiplying a variable
- by a constant and the adding or subtracting 1
- could result in incorrect code generation.
- ------------------------------------------------------------------------
- PJ11128 BE Optimization Problem: An internal problem
- could result in traps or unexpected results
- with 32 to 16 or 16 to 32 code.
- ------------------------------------------------------------------------
- PJ11129 BE Optimization Problem: In rare circumstances,
- doing arithmetic with shorts could result in
- traps or unexpected results.
- ------------------------------------------------------------------------
- PJ11134 BE Optimization Problem: The result of a right
- shift of a negative value, though
- implementation defined, could differ at /O-
- and /O+.
- ------------------------------------------------------------------------
- PJ11135 BE Optimization Problem: The backend could abort
- with fatal error EDC4005 in intermediate file
- ROOPT when optimizing an if-then-else.
- ------------------------------------------------------------------------
- PJ11137 BE Optimization Problem: Expressions of the
- form: "*(float *) &var", where var is an int,
- could cause a compile-time back-end trap.
- ------------------------------------------------------------------------
- PJ11138 BE Optimization Problem: An internal problem
- occuring when compiling floating-point code
- could cause a compile-time back-end trap.
- ------------------------------------------------------------------------
- PJ11139 BE Incorrect code could be generated when
- negating a char variable and then storing the
- result into an int variable.
- ------------------------------------------------------------------------
- PJ11140 BE Optimization Problem: Statements of the form:
- "x--; if (cond) x += 2;" may be incorrectly
- optimized.
- ------------------------------------------------------------------------
- PJ11141 BE Run-time traps could occur in code using 16
- to 32 callback functions if the code crossed
- a 64K boundary.
- ------------------------------------------------------------------------
- PJ11142 BE When using strncat(), an extra NULL was being
- appended to the end of the destination string
- if the length of the source string was less
- than "n".
- ------------------------------------------------------------------------
- PJ11143 BE Optimization Problem: Statements of the form:
- "if (!x) {y = 0;} else {y = 1;}" could cause
- a compile-time trap if x is a float-point
- type.
- ------------------------------------------------------------------------
- QUAL-IMP BE Under certain conditions, the optimizer could
- leave around some useless LEA instructions.
- This has now been fixed.
- ------------------------------------------------------------------------
- QUAL-IMP BE When exporting callback functions, an
- incorrect symbol could be used, resulting in
- link errors.
- ------------------------------------------------------------------------
- PJ11176 CFE Compiler generates incorrect code for
- referencing array of array in structure
- with array index of 0.
- ie: a.b[i][0].c = 1; a.b[i]->c = 2;
- ------------------------------------------------------------------------
- PJ11177 CFE If a variable is first declared and then
- initialized both with a typedef type and
- a qualifier, the compiler generates incorrect
- code.
- ie: const typedef_name var;
- const typedef_name var = 0;
- ------------------------------------------------------------------------
- PJ11179 CFE When initializing a member of a structure
- casting the member to _Seg16 pointer causes
- unexpected compiler error.
- ------------------------------------------------------------------------
- PJ11180 CFE When #pragma handler is specified for some
- functions, the compiler randomly generates
- incorrect code that exports some of those
- functions.
- ------------------------------------------------------------------------
- PJ11181 C++FE The following message is produced when both
- sides of a conditional expression are the
- same:
- recoverable EDC4005: Error occured in
- intermediate file RBEXPR(4902)
- ------------------------------------------------------------------------
- PJ11182 C++FE An initialized function-scope static variable
- will cause the C++ front end to GPF if a
- compiler temporary is required when
- evaluating the initializing expression.
- ------------------------------------------------------------------------
- PJ11183 CRT FILE struct members violate user name space.
- ------------------------------------------------------------------------
- PJ11185 CRT MATHERR not handling domain errors.
- =========================================================================
- CTC0003 is informal Corrective Service
- The following fixes are provided in Compiler CS CTC0003 and later CS
- *************************************************************************
- FIX/APAR COMPONENT PROBLEM DESCRIPTION
- ------------------------------------------------------------------------
- PJ10704 BE Incorrect debug information could cause IPMD
- to trap in DDE4BE32.DLL while debugging C++
- programs.
- ------------------------------------------------------------------------
- PJ10705 BE Incorrect debug information for const member
- functions could cause expression evaluation
- problems in IPMD.
- ------------------------------------------------------------------------
- PJ10706 BE Incorrect debug information could cause IPMD
- to hang when debugging large programs.
- ------------------------------------------------------------------------
- QUAL-IMP BE Incorrect debug information could confuse
- IPMD while debugging C++ programs.
- ------------------------------------------------------------------------
- PJ10461 CRT Serialization code used in the runtime
- library may cause system traps. This
- usually occurs when one of the thread
- unexpectedly terminates.
- ------------------------------------------------------------------------
- PJ10703 C++RTL CPPFILT utility truncates the mangled
- function names if it is greater than 233
- characters.
- =========================================================================
- CTC0002 is formal Corrective Service
- The following fixes are provided in Compiler CS CTC0002 and later CS
- *************************************************************************
- FIX/APAR COMPONENT PROBLEM DESCRIPTION
- ------------------------------------------------------------------------
- PJ10544 BE Optimization Problem: Compiling with /G5 /Ms
- may optimize SUB ESP,4 into PUSH EAX at
- inappropriate places.
- ------------------------------------------------------------------------
- PJ10545 BE Incorrect code may be generated when copying
- structures whose size is less than 12 bytes.
- ------------------------------------------------------------------------
- PJ10546 BE Optimization Problem: An internal problem
- during common subexpression elimination could
- cause a compile-time exception.
- ------------------------------------------------------------------------
- PJ10547 BE Optimization Problem: Incorrect code
- generation may result when optimizing a loop
- that contains a goto which acts like a break.
- ------------------------------------------------------------------------
- PJ10549 BE Optimization Problem: Instruction scheduling
- may move instructions out of the protected
- area between _disable and _enable.
- ------------------------------------------------------------------------
- PJ10550 BE Optimization Problem: Returning a floating
- point value as an integer may cause problems
- on machines without FP co-processors when
- compiled with /O and either /G4 or /G5.
- ------------------------------------------------------------------------
- PJ10552 BE The enum data offset field of a COMDAT placed
- in a user segment was being set to a non-zero
- value.
- ------------------------------------------------------------------------
- PJ10553 BE Optimization Problem: An internal problem
- could cause a compile-time trap when
- compiling with /O+ /Gf+.
- ------------------------------------------------------------------------
- PJ10556 BE The BE was not growing the number of file
- handles available. This caused a
- compile-time exception when the BE ran out of
- file handles.
- ------------------------------------------------------------------------
- PJ10557 BE Optimization Problem: Calling a 32-bit
- function from the last statement of a _Far16
- _Pascal function could be compiled
- incorrectly.
- ------------------------------------------------------------------------
- PJ10558 BE Optimization Problem: The incorrect register
- may be cleared when returning 0.
- ------------------------------------------------------------------------
- PJ10559 BE A constant left-shifted by another constant
- may be folded incorrectly when compiled with
- /Gi.
- ------------------------------------------------------------------------
- PJ10560 BE Optimization Problem: Tail call optimization
- was being incorrectly applied to a call to a
- pascal linkage function from a system linkage
- function.
- ------------------------------------------------------------------------
- QUAL-IMP BE Optimization Problem: Bad register selection
- around switch statements could cause
- incorrect code generation.
- ------------------------------------------------------------------------
- QUAL-IMP BE With C++, returning a complex structure from
- a function whose destructor has been inlined
- could be compiled incorrectly.
- ------------------------------------------------------------------------
- QUAL-IMP BE An internal problem could cause a
- compile-time trap when compiling, with /Gr
- /Rn, a _Far32 _Pascal function that returns a
- pointer.
- ------------------------------------------------------------------------
- PJ10478 CFE The preprocessor was getting an internal
- compiler error for certain macro expansion.
- ------------------------------------------------------------------------
- PJ10477 CFE If a source/header file contains null
- characters, the compiler gets an internal
- compiler error and may result in a huge
- swapper that may bring down your system.
- ------------------------------------------------------------------------
- QUAL-IMP CFE Error message was being erroneously issued
- when '_Export" keyword or '#pragma export'
- are specified more than once for the same
- object.
- ------------------------------------------------------------------------
- PJ10566 C++FE Conversion function results in an
- unconstructed temporary. No constructor was
- called for the temporary object.
- ------------------------------------------------------------------------
- PJ10567 C++FE When passing a class as a by value parameter
- a temporary is not used and the class is
- passed by reference.
- ------------------------------------------------------------------------
- PJ10568 C++FE Member friend incorrectly inherits function
- linkage from linkage specifier.
- ------------------------------------------------------------------------
- PJ10569 C++FE Invalid Error message EDC3458 produced.
- ------------------------------------------------------------------------
- PJ10570 C++FE GPF calling virtual member function of a
- template class when the module uses #pragma
- data_seg.
- ------------------------------------------------------------------------
- PJ10571 C++FE Invalid error for postfix operator ++ on a
- reference in a conditional expression.
- ------------------------------------------------------------------------
- PJ10572 C++FE Invalid error message EDC3276 and GPF when
- compiling a conditional expression.
- ------------------------------------------------------------------------
- QUAL-IMP C++FE Runtime GPF accessing static data member
- at location 0.
- ------------------------------------------------------------------------
- QUAL-IMP C++FE /Ms causes a runtime GPF when exception
- handling is used.
- ------------------------------------------------------------------------
- PJ10462 CRT Thunk Prologue incorrectly probes stack
- causing system traps. This may occur
- with any 32-16 calls not in thread one.
- ------------------------------------------------------------------------
- QUAL-IMP CRT Free not handling debug object. An debug
- memory object (as allocated by the debug
- memory routine) can cause system trap
- after it is passed to the regular free()
- function for freeing.
- ------------------------------------------------------------------------
- QUAL-IMP CRT Spawn/Exec family functions should ignore
- net error. If the net error is not ignored,
- the search on the PATH stops prematurely,
- which may cause spawns/exec functions not to
- find any program whose path appears
- after the net work path causing the error.
- ------------------------------------------------------------------------
- QUAL-IMP UTIL Compiler dialog did not parse a file when the
- file contains a '//' comment. It ignored
- lines after the '//' character until a blank
- line is reached.
- ------------------------------------------------------------------------
- QUAL-IMP UTIL Dialog did not free up memory when saving
- or retrieving information to/from the project
- file extended attribute.
- =========================================================================
- CTC0001 is informal Corrective Service
- The following fixes are provided in Compiler CS CTC0001 and later CS
- *************************************************************************
- FIX/APAR COMPONENT PROBLEM DESCRIPTION
- ------------------------------------------------------------------------
- PJ09575 DOC Hitting Ctrl H in EPM for contextual help
- did not work for printf or scanf. A change
- was made in the DDE4CLIB.NDX file..
- ------------------------------------------------------------------------
- QUAL-IMP ICC When /Fa compilation switch was used to
- create assembler file, and a template file
- was compiled, the compiler trapped.
- ------------------------------------------------------------------------
- QUAL-IMP ICC Added the description of /Tm option to ICC
- help.
- ------------------------------------------------------------------------
- PJ09573 FE Fixed the compiler to disallow illegal
- initialization of two-dimensional array
- of char with character string without braces.
- ------------------------------------------------------------------------
- PJ09574 FE Structure initialization failed with an
- extra set of braces.
- ------------------------------------------------------------------------
- QUAL-IMP FE Usage of _Export keyword caused the compiler
- to fail.
- ------------------------------------------------------------------------
- QUAL-IMP UTIL Beta project causes Workframe to trap.
- ------------------------------------------------------------------------
- QUAL-IMP UTIL Update English panels to fix a Japanese
- VGA screen.
- ------------------------------------------------------------------------
- QUAL-IMP UTIL Remove the minimize capability of the
- notebook dialog.
- ------------------------------------------------------------------------
- QUAL-IMP UTIL No keyboard focus when the notebook dialog
- first appears.
- ------------------------------------------------------------------------
- QUAL-IMP UTIL Incorrect focus when Alt key is pressed
- inside a dialog.
- ------------------------------------------------------------------------
- QUAL-IMP UTIL /Xc should not generate any command line
- include paths.
- ------------------------------------------------------------------------
- QUAL-IMP C++FE The /Ms option is changing the linkage of
- internally declared compiler functions.
- This can result in runtime traps when using
- memory management or C++ exception handling.
- ------------------------------------------------------------------------
- QUAL-IMP C++FE The linker fails when using /ND to rename
- a data segment. The compiler is generating
- bad code for partially initialized
- structures.
- ------------------------------------------------------------------------
- QUAL-IMP C++FE Using the compiler options /La or /Lb causes
- the compiler to trap.
- ------------------------------------------------------------------------
- PJ09576 C++FE Linking a program that contains templates
- causes an invalid error to be generated by
- lib.exe. The error is "LIB0007: Error :
- Unable to open D:\00900000.6.OBJ"
- ------------------------------------------------------------------------
- PJ09577 C++FE Large program with many template functions,
- (more than 1023), traps at runtime.
- ------------------------------------------------------------------------
- PJ09578 C++FE When linking programs that contain templates
- and object files that were generated by TASM
- the message: "Unknown Record Type {ox..},
- offset {..} is generated.
- ------------------------------------------------------------------------
- PJ09579 C++FE The compiler is incorrectly resolving to a
- function template instead of using a
- previously declared member function.
- ------------------------------------------------------------------------
- PJ09580 C++FE Object destructors are not always run after
- a throw statement.
- ------------------------------------------------------------------------
- PJ09581 C++FE Compiling code that uses _Far16 and _Pascal
- keywords causes an internal compiler error:
- "Exception #C0000005: 30751 occurred in
- file .., function .."
- ------------------------------------------------------------------------
- QUAL-IMP C++RT Incorrectly handling exceptions in multiple
- runtime environments.
- ------------------------------------------------------------------------
- PJ09568 BE Compiling source files with the same names
- may result in conflicting BSS static areas.
- ------------------------------------------------------------------------
- PJ09570 BE Optimization Problem: Incorrect code could be
- generated when the result of a comparison is
- subtracted from a variable.
- ------------------------------------------------------------------------
- PJ09571 BE The debug info could become corrupted in very
- large files which results in only assembler
- view being available within IPMD.
- ------------------------------------------------------------------------
- PJ09572 BE Optimization Problem: An internal problem
- during loop optimizations could cause a
- compile-time exception in the back-end.
- ------------------------------------------------------------------------
- PJ09569 BE Optimization Problem: Incorrect code could be
- produced for loops ending with an
- if-then-else where the last statement of the
- else is a break.
- ------------------------------------------------------------------------
- QUAL-IMP BE Optimization Problem: An internal problem in
- store removal could cause incorrect code.
- ------------------------------------------------------------------------
- QUAL-IMP BE Optimization Problem: An internal problem
- may cause a compile-time exception in the
- back-end.
- ------------------------------------------------------------------------
- QUAL-IMP BE Incorrect code generation for _Far16 _Pascal
- functions that return floating-point types
- could cause a run-time exception.
- ------------------------------------------------------------------------
- QUAL-IMP BE Optimization Problem: An internal problem,
- when compiling with /Ti+, may cause incorrect
- code generation for breaks within loops.
- ------------------------------------------------------------------------
- QUAL-IMP BE Optimization Problem: The optimizer was
- incorrectly folding (0 / x) and (0 % x).
- ------------------------------------------------------------------------
- QUAL-IMP BE Casting a floating-point value to int and
- then comparing the result to another int that
- was previously cast from a floating-point
- value may produce incorrect results.
- =========================================================================
-